#ifndef __WIZ_ARCHIVE_SERIALIZER_UTILS_BASECLASS_HPP__SHANHAOBO_19800429__
#define __WIZ_ARCHIVE_SERIALIZER_UTILS_BASECLASS_HPP__SHANHAOBO_19800429__

#include "./WizArchiveForwardDeclare.hpp"

namespace Wiz
{
    namespace Archive
    {
        namespace Serializer
        {
            namespace Utils
            {
                namespace Version
                {
                    template<class DataT>
                    struct Type
                    {
                        typedef ::Wiz::TypeTraits::UInt::Type<0>::tType tType;

                        static const ::Wiz::Archive::VerNum::Type iValue = tType::iValue;
                    };
                } /// end of namespace BaseClass
            } /// end of namespace Utils
        } /// end of namespace Serializer
    } /// end of namespace Archive
} /// end of namespace Wiz

#define WIZ_ARCHIVE_SERIALIZER_UTILS_VERSION(T, N)                          \
    namespace Wiz { namespace Archive { namespace Serializer {              \
    namespace Utils { namespace Version {                                   \
    template<> struct Type<DataT> {                                         \
        typedef ::Wiz::TypeTraits::Int::Type<N>::tType tType;               \
        static const ::Wiz::Archive::VerNum::Type iValue = tType::iValue;   \
    };

#endif /*__WIZ_ARCHIVE_SERIALIZER_UTILS_BASECLASS_HPP__SHANHAOBO_19800429__*/
